\hypertarget{classDoubleLinkedList}{}\doxysection{Double\+Linked\+List$<$ DT $>$ Class Template Reference}
\label{classDoubleLinkedList}\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}


define a class of a double linked class The class includes a structure named Node, two nested class named \mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}} and iterator for visitation of objects,two Node$\ast$ pointers named head and tail and Big Five functions. ~\newline
  




{\ttfamily \#include $<$Double\+Linked\+List.\+h$>$}

\doxysubsection*{Classes}
\begin{DoxyCompactItemize}
\item 
class \mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}}
\begin{DoxyCompactList}\small\item\em A brief discprition of \mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}} The \mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}} is unable to change member variables, but can visit objects of constant type. \end{DoxyCompactList}\item 
class \mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}}
\begin{DoxyCompactList}\small\item\em the public type inheritance of \mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}} It could only visit auto objects and all the member functions below are akin to its parent class, so they won\textquotesingle{}t be introduced in detail \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{classDoubleLinkedList_aee88179cbec704a72abc4ffedaaae206}\label{classDoubleLinkedList_aee88179cbec704a72abc4ffedaaae206}} 
\mbox{\hyperlink{classDoubleLinkedList_aee88179cbec704a72abc4ffedaaae206}{Double\+Linked\+List}} ()
\begin{DoxyCompactList}\small\item\em Construct a new Double Linked List object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDoubleLinkedList_a941489c5c72cb46a00e24ff1c998b087}\label{classDoubleLinkedList_a941489c5c72cb46a00e24ff1c998b087}} 
\mbox{\hyperlink{classDoubleLinkedList_a941489c5c72cb46a00e24ff1c998b087}{$\sim$\+Double\+Linked\+List}} ()
\begin{DoxyCompactList}\small\item\em Destroy the Double Linked List object. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList_a9f6fd6fab778f30041aa6119b67d70db}{Double\+Linked\+List}} (const \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}} \&rhs)
\begin{DoxyCompactList}\small\item\em Construct a new Double Linked List object Copy constructor. Local variable x was used for traversing the container. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}} \& \mbox{\hyperlink{classDoubleLinkedList_a857b3efd79c7794a99b82bbe65d4f2a9}{operator=}} (const \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}} \&rhs)
\begin{DoxyCompactList}\small\item\em assignment operation It is called when an lvalue is transmitted \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList_a1a2a7c993e056a3d7e15bd1bf3d38bf2}{Double\+Linked\+List}} (\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}} \&\&rhs)
\begin{DoxyCompactList}\small\item\em Construct a new Double Linked List object It\textquotesingle{}s a move constructor, avoiding the copying process. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}} \& \mbox{\hyperlink{classDoubleLinkedList_a134e16aa90f251ec1fe732b8b83a758d}{operator=}} (\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}} \&\&rhs)
\begin{DoxyCompactList}\small\item\em It\textquotesingle{}s a move assignment It was used to avoid the process of copy. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList_a76384816354f94d8d42e0829c7bda914}{begin}} ()
\begin{DoxyCompactList}\small\item\em return the first node \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}} \mbox{\hyperlink{classDoubleLinkedList_abb15c59c5b15dbdecae44e186e7c9b2d}{begin}} () const
\begin{DoxyCompactList}\small\item\em return the first node, called by a constant object \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList_aa52f0a0dea8b178abf3972cb5c7ba44b}{end}} ()
\begin{DoxyCompactList}\small\item\em return tail \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}} \mbox{\hyperlink{classDoubleLinkedList_a683ec24475d58d896c47b00d9893fb6d}{end}} () const
\begin{DoxyCompactList}\small\item\em return tail, able to visit constant object \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classDoubleLinkedList_a896b91eefaa6a0288e31a846382d1d39}{size}} () const
\begin{DoxyCompactList}\small\item\em return the number of Node structures \end{DoxyCompactList}\item 
bool \mbox{\hyperlink{classDoubleLinkedList_a8ebe0a7e9218900f723620eb5359df6c}{empty}} () const
\begin{DoxyCompactList}\small\item\em judje if the class dosen\textquotesingle{}t have any node \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDoubleLinkedList_ae137341cb837578aceed300d50ebe664}\label{classDoubleLinkedList_ae137341cb837578aceed300d50ebe664}} 
void \mbox{\hyperlink{classDoubleLinkedList_ae137341cb837578aceed300d50ebe664}{clear}} ()
\begin{DoxyCompactList}\small\item\em delete all nodes \end{DoxyCompactList}\item 
DT \& \mbox{\hyperlink{classDoubleLinkedList_a321d39c83c64c5a56491cfb6312c3112}{front}} ()
\begin{DoxyCompactList}\small\item\em Return the data of the first node \textquotesingle{}$\ast$\textquotesingle{} was overloaded. \end{DoxyCompactList}\item 
const DT \& \mbox{\hyperlink{classDoubleLinkedList_a783cd5151e28aa5396fa7ea79f64835b}{front}} () const
\begin{DoxyCompactList}\small\item\em const type \end{DoxyCompactList}\item 
const DT \& \mbox{\hyperlink{classDoubleLinkedList_ae4df7660c6cb44e3176de9e748a8f755}{back}} () const
\begin{DoxyCompactList}\small\item\em return the data of the last node \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classDoubleLinkedList_abc9f1f67bf23ed7ffc31361eaa14d0f6}{push\+\_\+front}} (const DT \&x)
\begin{DoxyCompactList}\small\item\em Insert the element as first node Called when lvalue was transmitted. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classDoubleLinkedList_a9d82e154514bdc6379c83df36c86a63b}{push\+\_\+front}} (DT \&\&x)
\begin{DoxyCompactList}\small\item\em akin to above but called when an rvalue was transmitted \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classDoubleLinkedList_a28c753ec25efce9713e58170bfa9812c}{push\+\_\+back}} (const DT \&x)
\begin{DoxyCompactList}\small\item\em Similar to above. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{classDoubleLinkedList_ad87b5006784034695d430e894eb989b4}{push\+\_\+back}} (const DT \&\&x)
\begin{DoxyCompactList}\small\item\em Similar to above. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDoubleLinkedList_a8526d84e8c9d45422e591056d64dd013}\label{classDoubleLinkedList_a8526d84e8c9d45422e591056d64dd013}} 
void {\bfseries pop\+\_\+front} ()
\item 
\mbox{\Hypertarget{classDoubleLinkedList_a99f2784092ee14196c3b91de6836b93b}\label{classDoubleLinkedList_a99f2784092ee14196c3b91de6836b93b}} 
void {\bfseries pop\+\_\+back} ()
\item 
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList_a781eabd9902464b05665ba9a5d547035}{insert}} (\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} itr, const DT \&x)
\begin{DoxyCompactList}\small\item\em Construct a node and insert before the itr pointer. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList_a3020daa2982b73be237e0b7735342d4c}{insert}} (\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} itr, DT \&\&x)
\begin{DoxyCompactList}\small\item\em similar to above but avoid copy \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList_a63980ca7417c2816904717c1cc4802cd}{erase}} (\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} itr)
\begin{DoxyCompactList}\small\item\em Delete the node pointed by itr Return the next pointer after itr. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList_acf8915685317c85b100b793123c14aba}{erase}} (\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} from, \mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} to)
\begin{DoxyCompactList}\small\item\em earase from pointer from until to and return to \end{DoxyCompactList}\item 
\mbox{\Hypertarget{classDoubleLinkedList_a500d8b83580e3a67ef1118e6bef7635c}\label{classDoubleLinkedList_a500d8b83580e3a67ef1118e6bef7635c}} 
void \mbox{\hyperlink{classDoubleLinkedList_a500d8b83580e3a67ef1118e6bef7635c}{print\+List}} ()
\begin{DoxyCompactList}\small\item\em print the all the data in the container \end{DoxyCompactList}\item 
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList_aa9278da68a6f9195089a835ee71f5e27}{find}} (\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$ \&\+\_\+list, const DT \&\+\_\+val)
\begin{DoxyCompactList}\small\item\em find a specific data in the list Return the finded iterator when successful Return nullptr and output warning when failed \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
\subsubsection*{template$<$typename DT$>$\newline
class Double\+Linked\+List$<$ DT $>$}

define a class of a double linked class The class includes a structure named Node, two nested class named \mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}} and iterator for visitation of objects,two Node$\ast$ pointers named head and tail and Big Five functions. ~\newline
 

\doxysubsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{classDoubleLinkedList_a9f6fd6fab778f30041aa6119b67d70db}\label{classDoubleLinkedList_a9f6fd6fab778f30041aa6119b67d70db}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!DoubleLinkedList@{DoubleLinkedList}}
\index{DoubleLinkedList@{DoubleLinkedList}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{DoubleLinkedList()}{DoubleLinkedList()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}} (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Construct a new Double Linked List object Copy constructor. Local variable x was used for traversing the container. 


\begin{DoxyParams}{Parameters}
{\em rhs} & the object used for copy \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classDoubleLinkedList_a1a2a7c993e056a3d7e15bd1bf3d38bf2}\label{classDoubleLinkedList_a1a2a7c993e056a3d7e15bd1bf3d38bf2}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!DoubleLinkedList@{DoubleLinkedList}}
\index{DoubleLinkedList@{DoubleLinkedList}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{DoubleLinkedList()}{DoubleLinkedList()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}} (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$ \&\&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Construct a new Double Linked List object It\textquotesingle{}s a move constructor, avoiding the copying process. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \\
\hline
\end{DoxyParams}


\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{classDoubleLinkedList_ae4df7660c6cb44e3176de9e748a8f755}\label{classDoubleLinkedList_ae4df7660c6cb44e3176de9e748a8f755}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!back@{back}}
\index{back@{back}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{back()}{back()}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
const DT\& \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::back (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



return the data of the last node 

\begin{DoxyReturn}{Returns}
const DT\& 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_a76384816354f94d8d42e0829c7bda914}\label{classDoubleLinkedList_a76384816354f94d8d42e0829c7bda914}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!begin@{begin}}
\index{begin@{begin}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



return the first node 

\begin{DoxyReturn}{Returns}
iterator 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_abb15c59c5b15dbdecae44e186e7c9b2d}\label{classDoubleLinkedList_abb15c59c5b15dbdecae44e186e7c9b2d}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!begin@{begin}}
\index{begin@{begin}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{begin()}{begin()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}} \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::begin (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



return the first node, called by a constant object 

\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}} 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_a8ebe0a7e9218900f723620eb5359df6c}\label{classDoubleLinkedList_a8ebe0a7e9218900f723620eb5359df6c}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!empty@{empty}}
\index{empty@{empty}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{empty()}{empty()}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
bool \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::empty (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



judje if the class dosen\textquotesingle{}t have any node 

\begin{DoxyReturn}{Returns}
true 

false 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_aa52f0a0dea8b178abf3972cb5c7ba44b}\label{classDoubleLinkedList_aa52f0a0dea8b178abf3972cb5c7ba44b}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!end@{end}}
\index{end@{end}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



return tail 

\begin{DoxyReturn}{Returns}
iterator 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_a683ec24475d58d896c47b00d9893fb6d}\label{classDoubleLinkedList_a683ec24475d58d896c47b00d9893fb6d}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!end@{end}}
\index{end@{end}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{end()}{end()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}} \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::end (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



return tail, able to visit constant object 

\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{classDoubleLinkedList_1_1const__iterator}{const\+\_\+iterator}} 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_acf8915685317c85b100b793123c14aba}\label{classDoubleLinkedList_acf8915685317c85b100b793123c14aba}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!erase@{erase}}
\index{erase@{erase}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{erase()}{erase()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::erase (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}}}]{from,  }\item[{\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}}}]{to }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



earase from pointer from until to and return to 


\begin{DoxyParams}{Parameters}
{\em from} & \\
\hline
{\em to} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
iterator 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_a63980ca7417c2816904717c1cc4802cd}\label{classDoubleLinkedList_a63980ca7417c2816904717c1cc4802cd}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!erase@{erase}}
\index{erase@{erase}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{erase()}{erase()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::erase (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}}}]{itr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Delete the node pointed by itr Return the next pointer after itr. 


\begin{DoxyParams}{Parameters}
{\em itr} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
iterator 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_aa9278da68a6f9195089a835ee71f5e27}\label{classDoubleLinkedList_aa9278da68a6f9195089a835ee71f5e27}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!find@{find}}
\index{find@{find}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{find()}{find()}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::find (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$ \&}]{\+\_\+list,  }\item[{const DT \&}]{\+\_\+val }\end{DoxyParamCaption})}



find a specific data in the list Return the finded iterator when successful Return nullptr and output warning when failed 


\begin{DoxyParams}{Parameters}
{\em \+\_\+list} & \\
\hline
{\em \+\_\+val} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Double\+Linked\+List$<$\+DT$>$\+::iterator 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_a321d39c83c64c5a56491cfb6312c3112}\label{classDoubleLinkedList_a321d39c83c64c5a56491cfb6312c3112}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!front@{front}}
\index{front@{front}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{front()}{front()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
DT\& \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::front (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Return the data of the first node \textquotesingle{}$\ast$\textquotesingle{} was overloaded. 

\begin{DoxyReturn}{Returns}
DT\& 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_a783cd5151e28aa5396fa7ea79f64835b}\label{classDoubleLinkedList_a783cd5151e28aa5396fa7ea79f64835b}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!front@{front}}
\index{front@{front}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{front()}{front()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
const DT\& \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::front (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



const type 

\begin{DoxyReturn}{Returns}
const DT\& 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_a781eabd9902464b05665ba9a5d547035}\label{classDoubleLinkedList_a781eabd9902464b05665ba9a5d547035}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!insert@{insert}}
\index{insert@{insert}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{insert()}{insert()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::insert (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}}}]{itr,  }\item[{const DT \&}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Construct a node and insert before the itr pointer. 


\begin{DoxyParams}{Parameters}
{\em itr} & \\
\hline
{\em x} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
iterator 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_a3020daa2982b73be237e0b7735342d4c}\label{classDoubleLinkedList_a3020daa2982b73be237e0b7735342d4c}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!insert@{insert}}
\index{insert@{insert}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{insert()}{insert()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}} \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::insert (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classDoubleLinkedList_1_1iterator}{iterator}}}]{itr,  }\item[{DT \&\&}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



similar to above but avoid copy 


\begin{DoxyParams}{Parameters}
{\em itr} & \\
\hline
{\em x} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
iterator 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_a857b3efd79c7794a99b82bbe65d4f2a9}\label{classDoubleLinkedList_a857b3efd79c7794a99b82bbe65d4f2a9}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!operator=@{operator=}}
\index{operator=@{operator=}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}\& \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::operator= (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$ \&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



assignment operation It is called when an lvalue is transmitted 


\begin{DoxyParams}{Parameters}
{\em rhs} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}\& 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_a134e16aa90f251ec1fe732b8b83a758d}\label{classDoubleLinkedList_a134e16aa90f251ec1fe732b8b83a758d}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!operator=@{operator=}}
\index{operator=@{operator=}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{operator=()}{operator=()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}\& \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::operator= (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$ \&\&}]{rhs }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



It\textquotesingle{}s a move assignment It was used to avoid the process of copy. 


\begin{DoxyParams}{Parameters}
{\em rhs} & \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}\& 
\end{DoxyReturn}
\mbox{\Hypertarget{classDoubleLinkedList_ad87b5006784034695d430e894eb989b4}\label{classDoubleLinkedList_ad87b5006784034695d430e894eb989b4}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!push\_back@{push\_back}}
\index{push\_back@{push\_back}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{push\_back()}{push\_back()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
void \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::push\+\_\+back (\begin{DoxyParamCaption}\item[{const DT \&\&}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Similar to above. 


\begin{DoxyParams}{Parameters}
{\em x} & \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classDoubleLinkedList_a28c753ec25efce9713e58170bfa9812c}\label{classDoubleLinkedList_a28c753ec25efce9713e58170bfa9812c}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!push\_back@{push\_back}}
\index{push\_back@{push\_back}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{push\_back()}{push\_back()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
void \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::push\+\_\+back (\begin{DoxyParamCaption}\item[{const DT \&}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Similar to above. 


\begin{DoxyParams}{Parameters}
{\em x} & \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classDoubleLinkedList_abc9f1f67bf23ed7ffc31361eaa14d0f6}\label{classDoubleLinkedList_abc9f1f67bf23ed7ffc31361eaa14d0f6}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!push\_front@{push\_front}}
\index{push\_front@{push\_front}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{push\_front()}{push\_front()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
void \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::push\+\_\+front (\begin{DoxyParamCaption}\item[{const DT \&}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



Insert the element as first node Called when lvalue was transmitted. 


\begin{DoxyParams}{Parameters}
{\em x} & \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classDoubleLinkedList_a9d82e154514bdc6379c83df36c86a63b}\label{classDoubleLinkedList_a9d82e154514bdc6379c83df36c86a63b}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!push\_front@{push\_front}}
\index{push\_front@{push\_front}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{push\_front()}{push\_front()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
void \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::push\+\_\+front (\begin{DoxyParamCaption}\item[{DT \&\&}]{x }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



akin to above but called when an rvalue was transmitted 


\begin{DoxyParams}{Parameters}
{\em x} & \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{classDoubleLinkedList_a896b91eefaa6a0288e31a846382d1d39}\label{classDoubleLinkedList_a896b91eefaa6a0288e31a846382d1d39}} 
\index{DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}!size@{size}}
\index{size@{size}!DoubleLinkedList$<$ DT $>$@{DoubleLinkedList$<$ DT $>$}}
\doxysubsubsection{\texorpdfstring{size()}{size()}}
{\footnotesize\ttfamily template$<$typename DT $>$ \\
int \mbox{\hyperlink{classDoubleLinkedList}{Double\+Linked\+List}}$<$ DT $>$\+::size (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption}) const\hspace{0.3cm}{\ttfamily [inline]}}



return the number of Node structures 

\begin{DoxyReturn}{Returns}
int 
\end{DoxyReturn}


The documentation for this class was generated from the following files\+:\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{DoubleLinkedList_8h}{Double\+Linked\+List.\+h}}\item 
\mbox{\hyperlink{main_8cpp}{main.\+cpp}}\end{DoxyCompactItemize}
